1. Field of the Invention
The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, the present invention relates to a dynamic web installer.
2. Description of the Related Art
The popularity of the World Wide Web (“Web”) has made the Internet an important media for mass communication. The Web is used for many applications such as information retrieval, personal communication, and electronic commerce and has been rapidly adopted by a fast growing number of Internet users in a large part of the world.
Using the Web, users can access remote information by receiving web pages through the Hypertext Transfer Protocol (HTTP). The information in a web page is described using the Hypertext Markup Language (HTML) and eXtensive Markup Language (XML), and is displayed by software called a web browser. Web pages may be considered static if they do not include any logic that can dynamically change their appearances or provide computations based on user input.
One issue relating to processing of software applications is the software installation process. Typically, the installation of a software application is achieved by a special-purpose program which comes with the software and is written only for the purpose of installing this software. This method of software installation means that developers for each software application often have to write a specific install program just to install their software. In general, an install program for an application configures a list of settings that are used to establish a proper environment or context for this application before it can be properly installed. These settings may include, for example, the basic operating system setup such as the registry entries, location setup such as the directory or folder in which the application is to be stored, link setup such as the short-cut link to this application, the graphic setup such as the icon of this application, and the dependency setup such as other applications that this application depends on for execution.
With the advent of the paradigm of componentization of software applications, the installation of software applications can be customized to provide an amount of code a customer desires. However, some users may want to install all possible components of a software application. Typically, such an installation can require an installer program to include all components, which can result in a large disk footprint for the installer (i.e., a relatively large amount of disk memory being used to store the code). This paradigm can lead a user that does not require all possible components of the application to retrieve an installer that includes support for all the components. Even though the user has the option to install a subset of the components included in the installer, the user often must allocate disk space for all components included in the installer, regardless of whether they plan on installing every component or not. This means that disk resources are being utilized by code, inside the installer, that the user never plans to use. In the same scenario, if the installer is retrieved from the Web, network resources are utilized to transfer code inside the installer, which the user never plans to use.
One alternative to this process is for a user to retrieve a single installer for each component. This also is not optimal since the user will likely be performing repetitive actions to complete all the installations they desire.